解决C++编译时报错:ld: cannot find |
您所在的位置:网站首页 › warning cannot find entry symbol › 解决C++编译时报错:ld: cannot find |
解决C++编译时报错:ld: cannot find -lxxx方法
原创
赶路人儿 2022-06-16 06:48:21 博主文章分类:C++ ©著作权 文章标签 linux libstdc++ 下载安装 文章分类 C/C++ 后端开发 ©著作权归作者所有:来自51CTO博客作者赶路人儿的原创作品,请联系作者获取转载授权,否则将追究法律责任编译程序有时会遇到“ld: cannot find -lxxx”的错误,就是链接器说找不到xxx库。一般先使用如下命令查找系统中是否存在xxx库而ld程序未找到(以zlib为例): $ ld -lzlib --verbose输出如下信息: ====================================attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.so failedattempt to open /usr/x86_64-linux-gnu/lib64/libzlib.a failedattempt to open /usr/local/lib64/libzlib.so failedattempt to open /usr/local/lib64/libzlib.a failedattempt to open /lib64/libzlib.so failedattempt to open /lib64/libzlib.a failedattempt to open /usr/lib64/libzlib.so failedattempt to open /usr/lib64/libzlib.a failedattempt to open /usr/x86_64-linux-gnu/lib/libzlib.so failedattempt to open /usr/x86_64-linux-gnu/lib/libzlib.a failedattempt to open /usr/local/lib/libzlib.so failedattempt to open /usr/local/lib/libzlib.a failedattempt to open /lib/libzlib.so failedattempt to open /lib/libzlib.a failedattempt to open /usr/lib/libzlib.so failedattempt to open /usr/lib/libzlib.a failed/usr/bin/ld.bfd.real: cannot find -lzlib=====================================此时说明系统中确实未安装zlib库,则下载安装zlib库,并将安全路径加到LD_LIBRARY_PATH即可。 另一种情况,系统中存在库而ld程序未找到,如: $ ld -lglog --verbose 输出如下信息: ==================================================attempt to open //usr/x86_64-redhat-linux/lib64/libglog.so failedattempt to open //usr/x86_64-redhat-linux/lib64/libglog.a failedattempt to open //usr/lib64/libglog.so failedattempt to open //usr/lib64/libglog.a failedattempt to open //usr/local/lib64/libglog.so failedattempt to open //usr/local/lib64/libglog.a failedattempt to open //lib64/libglog.so failedattempt to open //lib64/libglog.a failedattempt to open //usr/x86_64-redhat-linux/lib/libglog.so failedattempt to open //usr/x86_64-redhat-linux/lib/libglog.a failedattempt to open //usr/local/lib/libglog.so succeeded-lglog (//usr/local/lib/libglog.so)libgflags.so.2.2 needed by //usr/local/lib/libglog.sofound libgflags.so.2.2 at //usr/local/lib/libgflags.so.2.2libpthread.so.0 needed by //usr/local/lib/libglog.sofound libpthread.so.0 at //usr/lib64/libpthread.so.0libstdc++.so.6 needed by //usr/local/lib/libglog.sofound libstdc++.so.6 at //usr/local/lib64/libstdc++.so.6libm.so.6 needed by //usr/local/lib/libglog.sofound libm.so.6 at //usr/lib64/libm.so.6libc.so.6 needed by //usr/local/lib/libglog.sofound libc.so.6 at //usr/lib64/libc.so.6libgcc_s.so.1 needed by //usr/local/lib/libglog.sofound libgcc_s.so.1 at //usr/lib64/libgcc_s.so.1ld-linux-x86-64.so.2 needed by //usr/lib64/libpthread.so.0found ld-linux-x86-64.so.2 at //usr/lib64/ld-linux-x86-64.so.2ld: warning: cannot find entry symbol _start; not setting start address此时说明系统中安装了glog库,但是ld程序未找到。 一种方法是将glog库的路径加到LD_LIBRARY_PATH环境变量中,另一种方法是直接加编译器选项进行编译: gcc -L/usr/lib64 -lglog 赞 收藏 评论 分享 举报 上一篇:基于dwr2.0的Push推送技术详细解析以及实例 下一篇:virtualbox虚拟机设置双网卡记录 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |